package com.yuqiaotech.zcj.service;

import java.io.Serializable;
import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
/**
 * 使用了泛型的基本CRUD的封装。
 * 各个方法意义比较明确，就没再添加注释。
 * 另外这里还特别说明了在interface的方法上是否加限制符都可以。
 *
 * @param <T> 实体类
 * @param <PK> 实体类主键
 */
public interface GenericManager<T, PK extends Serializable>  {
	public abstract T save(T entity);
	public void delete(T entity);
	void remove(PK id);
	List findByHql(String hql, Object... params);
	T get(PK id);
	public T findUniqueBy(Class persistentClass,String propertyName, Object value);
	int executeUpdate(String hql, Object... params);
	public void update(T entity);
	
}
